#!/bin/bash

# 定义颜色变量
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[0;33m'
NC='\033[0m' # 恢复默认颜色

# 输出文件路径
OUTPUT_FILE="icr.raw"

echo -e "${YELLOW}正在捕获视频流...${NC}"

# 设置视频捕获参数并保存到OUTPUT_FILE
v4l2-ctl -d /dev/video0 \
  --set-fmt-video=width=768,height=512,pixelformat=GREY \
  --stream-mmap=4 \
  --stream-poll \
  --stream-count=10 \
  --stream-to="${OUTPUT_FILE}"

# 检查命令执行状态
if [ $? -ne 0 ]; then
    echo -e "${RED}✗ v4l2-ctl命令执行失败！${NC}"
    
    # 若文件存在但为空，删除它
    if [ -f "${OUTPUT_FILE}" ] && [ ! -s "${OUTPUT_FILE}" ]; then
        rm -f "${OUTPUT_FILE}"
        echo -e "${YELLOW}已删除空文件：${OUTPUT_FILE}${NC}"
    fi
    
    exit 1
fi

# 检查文件是否存在且不为空
if [ ! -s "${OUTPUT_FILE}" ]; then
    echo -e "${RED}✗ 读取video0失败：捕获的文件为空！${NC}"
    
    # 删除空文件
    rm -f "${OUTPUT_FILE}"
    echo -e "${YELLOW}已删除空文件：${OUTPUT_FILE}${NC}"
    
    exit 1
fi

# 获取文件大小并转换为易读格式
file_size=$(du -h "${OUTPUT_FILE}" | cut -f1)

echo -e "${GREEN}✓ 视频捕获成功！${NC}"
echo -e "文件位置：${YELLOW}${OUTPUT_FILE}${NC}"
echo -e "文件大小：${YELLOW}${file_size}${NC}"